package com.xzt.bookstore.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xzt.bookstore.dto.OrderCreateRequest;
import com.xzt.bookstore.dto.OrderDTO;
import com.xzt.bookstore.entity.Order;

import java.util.List;

/**
 * 订单服务接口
 */
public interface OrderService extends IService<Order> {
    
    /**
     * 从购物车创建订单
     * @param userId 用户ID
     * @param request 创建订单请求
     * @return 订单DTO
     */
    OrderDTO createOrderFromCart(Long userId, OrderCreateRequest request);
    
    /**
     * 获取用户的订单列表
     * @param userId 用户ID
     * @return 订单列表
     */
    List<OrderDTO> getUserOrders(Long userId);
    
    /**
     * 根据订单ID获取订单详情
     * @param userId 用户ID
     * @param orderId 订单ID
     * @return 订单DTO
     */
    OrderDTO getOrderById(Long userId, Long orderId);
    
    /**
     * 取消订单
     * @param userId 用户ID
     * @param orderId 订单ID
     */
    void cancelOrder(Long userId, Long orderId);
}

